-
当物件设定绝对定位之后,预设它是抓不到整体可运用空间的范围,所以 margin: auto 此时会失效。但当你设定了 top: 0; bottom: 0 时,绝对定位物件垂直置中于父层。如果你的绝对定位物件需要水平置中于父层,那你同样可以设定 left: 0; right:
-
需要使用 absolute 搭配 top & bottom 来让 margin:auto 能正常计算出来,若是要用比较浅白的解释的话, 会这么解释:
-
『当你将物件设定成绝对定位后,此时你的物件将自己位于一个层,此时尚未知道这一层的空间大小多少,但是一旦将物件设定 top:0 以及 bottom:0 时,此时浏览器将会计算空间顶端跟底端的空间尺寸,这时你的空间大小就能够被取得了,接着我们的 margin:auto (margin-left 与 margin-right 设定为 auto)就生效啰。』
-
此方式的缺点是你的定位物件必须有固定的宽高(%数也可)才能正常置中。